countMatching

@JvmName(name = "countMatchingFull")
fun CharSequence.countMatching(vararg chars: Char): Int(source)

Counts continuous characters in this string that are present in the chars array.

Samples

import dev.kikugie.commons.text.countMatching
import dev.kikugie.commons.text.countWhile
import dev.kikugie.commons.text.getOrDefault
import dev.kikugie.commons.text.isEnglishLetter
import dev.kikugie.commons.text.isEnglishLetterOrDigit
import dev.kikugie.commons.text.reverseView
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue

fun main() { 
   //sampleStart 
   assertEquals(0, "...oops".countMatching('o'))
assertEquals(3, "...oops".countMatching('.'))
assertEquals(5, "...oops".countMatching('.', 'o'))
assertEquals(3, "...oops".countMatching(start = 3, end = 6, 'o', 'p', 's')) 
   //sampleEnd
}

fun CharSequence.countMatching(range: IntRange, vararg chars: Char): Int(source)

Counts continuous characters in this string that are present in the chars array. The count goes withing the given range, which is coerced to the string boundaries.

Samples

import dev.kikugie.commons.text.countMatching
import dev.kikugie.commons.text.countWhile
import dev.kikugie.commons.text.getOrDefault
import dev.kikugie.commons.text.isEnglishLetter
import dev.kikugie.commons.text.isEnglishLetterOrDigit
import dev.kikugie.commons.text.reverseView
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue

fun main() { 
   //sampleStart 
   assertEquals(0, "...oops".countMatching('o'))
assertEquals(3, "...oops".countMatching('.'))
assertEquals(5, "...oops".countMatching('.', 'o'))
assertEquals(3, "...oops".countMatching(start = 3, end = 6, 'o', 'p', 's')) 
   //sampleEnd
}

fun CharSequence.countMatching(start: Int = 0, end: Int = length, vararg chars: Char): Int(source)

Counts continuous characters in this string that are present in the chars array. The count goes from start to end (exclusive), which cover the full string by default and coerce to its boundaries.

Samples

import dev.kikugie.commons.text.countMatching
import dev.kikugie.commons.text.countWhile
import dev.kikugie.commons.text.getOrDefault
import dev.kikugie.commons.text.isEnglishLetter
import dev.kikugie.commons.text.isEnglishLetterOrDigit
import dev.kikugie.commons.text.reverseView
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue

fun main() { 
   //sampleStart 
   assertEquals(0, "...oops".countMatching('o'))
assertEquals(3, "...oops".countMatching('.'))
assertEquals(5, "...oops".countMatching('.', 'o'))
assertEquals(3, "...oops".countMatching(start = 3, end = 6, 'o', 'p', 's')) 
   //sampleEnd
}